KTN-01
| Field | Isi |
|---|---|
| Dokumen ID | KTN-01 |
| Deskripsi | Penjualan multi sales |
| Nomor Revisi | 2 |
| Tanggal | 2026-10-03 |
| Keterangan | Scope diperluas: penjualan atas SO ikut memakai sales kirim dan checker |
1. Ringkasan
a. In scope
- Penjualan dengan multi sales
- Dapat memilih checker
- Penjualan langsung (tanpa SO)
- Penjualan atas SO
b. Catatan
- Yang dimaksud multi sales itu bukan banyak sales secara bebas
- Jadi masing-masing invoice penjualan itu tetap hanya butuh satu sales yang tercatat. Namun ada field baru lagi, yaitu sales kirim dan checker
- Sales kirim dan checker adalah karyawan, namun saat ini hanya sebatas informasi pada surat jalan saja
- Field sales kirim dan checker berlaku sama pada penjualan langsung maupun penjualan yang dibuat dari SO
c. Kesimpulan
- [FE] Tambahkan field sales kirim dan checker pada informasi invoice penjualan langsung (
penjualan/tambah) - [FE] Tambahkan field sales kirim dan checker pada informasi invoice penjualan atas SO (
penjualan/tambah-so) - [BE] Update endpoint invoice penjualan agar menerima sales kirim dan checker pada create maupun update
2. Functional Requirement
| Kode | Deskripsi |
|---|---|
| FR-01 | Invoice penjualan harus memiliki sales kirim |
| FR-02 | Invoice penjualan harus memiliki checker |
| FR-03 | Perubahan harus diterapkan pada API create maupun update |
| FR-04 | Field sales kirim dan checker tersedia pada penjualan langsung maupun penjualan atas SO |
3. Use Case List
| Kode | Deskripsi |
|---|---|
| UC-01 | Memilih sales kirim dan checker pada penjualan langsung |
| UC-02 | Memilih sales kirim dan checker pada penjualan atas SO |
4. Use Case Scenario
UC-01 : Memilih sales kirim dan checker pada penjualan langsung
| Aktor | Officer |
| Deskripsi | Dapat memilih sales kirim dan checker pada saat membuat invoice penjualan langsung |
| Prekondisi | - Pengguna terautentikasi - Memiliki hak akses - Dapat membuka halaman create invoice penjualan langsung |
| Alur utama | 1. Membuka halaman create invoice penjualan langsung. 2. Mengisi informasi yang perlu diisi. 3. Memilih sales kirim dan checker dari daftar karyawan. 4. Membuat invoice penjualan. |
| Alur negatif | - Jika sales kirim atau checker kosong, simpan ditolak dan muncul validasi wajib isi. - Jika gagal menyimpan invoice, muncul pesan error dan data belum tersimpan. |
| Bisnis rule | - Sales kirim dan checker wajib diisi. - Yang masuk ke invoice dan laporan, tetap hanya karyawan_id_sales saja.- Sales kirim dan checker saat ini hanya sebatas informasi pada surat jalan. |
| Postkondisi | Invoice penjualan langsung dibuat dengan sales kirim dan checker |
| Trigger | Menekan buat invoice dari halaman penjualan |
| Kode FR | FR-01 FR-02 FR-03 FR-04 |
UC-02 : Memilih sales kirim dan checker pada penjualan atas SO
| Aktor | Officer |
| Deskripsi | Dapat memilih sales kirim dan checker pada saat membuat invoice penjualan dari SO |
| Prekondisi | - Pengguna terautentikasi - Memiliki hak akses - SO yang akan ditagihkan sudah ada - Dapat membuka halaman create invoice penjualan atas SO |
| Alur utama | 1. Membuka halaman create invoice penjualan atas SO. 2. Memilih / memuat data SO terkait. 3. Mengisi informasi yang perlu diisi. 4. Memilih sales kirim dan checker dari daftar karyawan. 5. Membuat invoice penjualan dari SO. |
| Alur negatif | - Jika SO tidak ditemukan, proses buat invoice atas SO tidak dilanjutkan. - Jika sales kirim atau checker kosong, simpan ditolak dan muncul validasi wajib isi. - Jika gagal menyimpan invoice, muncul pesan error dan data belum tersimpan. |
| Bisnis rule | - Sales kirim dan checker wajib diisi, sama seperti penjualan langsung. - Yang masuk ke invoice dan laporan, tetap hanya karyawan_id_sales saja.- Sales kirim dan checker saat ini hanya sebatas informasi pada surat jalan. - Field tidak diganti oleh data sales dari SO secara otomatis tanpa pilihan user. |
| Postkondisi | Invoice penjualan atas SO dibuat dengan sales kirim dan checker |
| Trigger | Menekan buat invoice atas SO dari halaman penjualan |
| Kode FR | FR-01 FR-02 FR-03 FR-04 |
5. Data Flow Diagram
Tidak ada data flow diagram.
6. Sequence Diagram
SD-01 — UC-01 : Memilih sales kirim dan checker pada penjualan langsung
SD-02 — UC-02 : Memilih sales kirim dan checker pada penjualan atas SO
7. Table Schema
| Table | Field | Status | Deskripsi |
|---|---|---|---|
| Invoice_Penjualan | karyawan_id_sales_kirim | new | Untuk menyimpan id sales kirim |
| Invoice_Penjualan | karyawan_id_checker | new | Untuk menyimpan id checker |
8. API Schema
| Endpoint | Status | Perubahan |
|---|---|---|
POST /[url_penjualan]/penjualan | changed | Req menambah karyawan_id_sales_kirim, karyawan_id_checker untuk penjualan langsung maupun atas SO |
PUT /[url_penjualan]/penjualan/:id | changed | Req menambah karyawan_id_sales_kirim, karyawan_id_checker |
GET /[url_penjualan]/invoice-penjualan | changed | Res menambah karyawan_id_sales_kirim, karyawan_id_checker |
GET /[url_penjualan]/invoice-penjualan/:id | changed | Res menambah karyawan_id_sales_kirim, karyawan_id_checker |
PUT /[url_penjualan]/invoice-penjualan/invoice-only/:id | changed | Req menambah karyawan_id_sales_kirim, karyawan_id_checker |
GET /[url_penjualan]/invoice-so/:id | existing | Dipakai memuat SO sebelum create penjualan atas SO. Perubahan field sales kirim/checker - |
GET /[url_gudang]/invoice-pengiriman-barang | changed | Res menambah karyawan_id_sales_kirim, karyawan_id_checker |
GET /[url_gudang]/invoice-pengiriman-barang/:id | changed | Res menambah karyawan_id_sales_kirim, karyawan_id_checker |
POST /[url_gudang]/invoice-pengiriman-barang | changed | Req menambah karyawan_id_sales_kirim, karyawan_id_checker |